Editoija | Päivämäärä | Versio | Muutokset |
Timo Ratilainen | 4.10.2000 | 0.1 | Perusversio |
Timo Ratilainen | 5.10.2000 | 0.2 | Paljon lisäyksiä joka kohtaan |
Timo Ratilainen | 7.10.2000 | 0.3 | Lisätty riskianalyysi |
Timo Ratilainen | 9.10.2000 | 0.4 | Korjauksia |
Timo Ratilainen | 10.10.2000 | 0.5 | Korjauksia |
Timo Ratilainen | 15.10.2000 | 0.6 | Pieniä korjauksia |
Timo Ratilainen | 16.10.2000 | 1.0 | Katselmoinnin korjaukset |
Timo Ratilainen | 19.10.2000 | 1.1 | Opponoinnin korjaukset |
Timo Ratilainen | 24.10.2000 | 1.2 | Vaatimukset-kappaleen päivitys, ositus/vaiheistus/resurssointi-kappaleen päivitys |
Timo Ratilainen | 26.10.2000 | 1.3 | Arvostelun korjaukset, kehitysympäristön muutos |
Timo Ratilainen | 3.11.2000 | 1.4 | Lisätty PS-vaiheen toteumat ja T2-vaiheen arviot |
Timo Ratilainen | 6.11.2000 | 2.0 | Katselmoinnin korjaukset |
Timo Ratilainen | 1.12.2000 | 2.1 | Koodikatselmointi poistettu, T3-vaihetta päivitetty |
Timo Ratilainen | 11.12.2000 | 3.0 | Katselmoinnin korjaukset |
Timo Ratilainen | 12.2.2001 | 3.1 | T4-vaiheen arviot. Päivityksiä lähinnä kappaleeseen 7. Termiluettelo kuntoon |
Timo Ratilainen | 12.2.2001 | 4.0 | Katselmoinnin korjaukset |
Timo Ratilainen | 15.3.2001 | 4.1 | LU-vaiheen arviot. |
Timo Ratilainen | 16.3.2001 | 5.0 | Katselmoinnin korjaukset |
Timo Ratilainen | 19.3.2001 | 5.1 | LU-vaiheen muutokset kappaleeseen 7 |
Timo Ratilainen | 20.3.2001 | 5.2 | Korjauksia kappaleeseen 7.6 |
Timo Ratilainen | 23.4.2001 | 6.0 | Hyväksytty versio |
Katselmoija(t) | Päivämäärä | Versio | Hyväksyjä |
Timo Ratilainen, Miiku Jaakkola, Tero Kilkanen, Jukka Hynninen, Jonne Loikkanen, Anssi Keskinen, Jaakko Tuomimäki | 16.10.2000 | 1.0 | Timo Ratilainen |
Timo Ratilainen, Miiku Jaakkola, Tero Kilkanen, Jukka Hynninen, Anssi Keskinen, Jaakko Tuomimäki | 6.11.2000 | 2.0 | Timo Ratilainen |
Timo Ratilainen, Miiku Jaakkola, Tero Kilkanen, Jukka Hynninen, Jaakko Tuomimäki | 11.12.2000 | 3.0 | Timo Ratilainen |
Timo Ratilainen, Tero Kilkanen, Jukka Hynninen, Jonne Loikkanen, Anssi Keskinen, Jaakko Tuomimäki | 12.2.2001 | 4.0 | Timo Ratilainen |
Timo Ratilainen, Miiku Jaakkola, Tero Kilkanen, Jukka Hynninen, Jonne Loikkanen, Anssi Keskinen, Jaakko Tuomimäki | 15.3.2001 | 5.0 | Timo Ratilainen |
Timo Ratilainen, Miiku Jaakkola, Tero Kilkanen, Jukka Hynninen, Jonne Loikkanen, Anssi Keskinen, Jaakko Tuomimäki | 23.4.2001 | 6.0 | Timo Ratilainen |
Tiivistelmä
Tässä dokumentissa on kuvattu PDM-ryhmän EAT -projektin projektisuunnitelma joka kuuluu Teknillisessä korkeakoulussa lukuvuonna 2000-2001 järjestettävään Tik-76.115 Tietojenkäsittelyopin ohjelmatyö -kurssiin.
Projektissa kehitetään ja toteutetaan TAI-tutkimuslaitokselle EDMS-dokumenttien hallintajärjestelmään ylläpitäjän työkalu. Työkalu kommunikoi TCP/IP yhteyden yli EDMS-palvelimen kanssa käyttäen valmiiksi määriteltyä protokollaa, jolla ylläpidolliset operaatiot tehdään. Projektin tarkoituksena on toteuttaa Java -kielellä ja Java Runtime Environment -ympäristössä toimiva graafinen ylläpitäjän työkalu, jota on helppo muuttaa tulevaisuudessa koko EDMS-järjestelmän kehittyessä.
Tämä dokumentti ohjaa myös projektiryhmän työtä kurssilla, joten dokumentti sisältää kurssin suorittamiseen tarvittavia tietoja ja prosesseja.
Sisällysluettelo
1. Johdanto
1.1 Projektin yleiskuva, tarkoitus ja kattavuus
1.2 Tuote ja ympäristö
1.3 Asiakkaan nykyinen ratkaisu
1.4 Projektin toteutusperusteet
1.5 Oikeudet työn tuloksiin
1.6 Yleikatsaus dokumenttiin
2. Termit ja määritelmät
3. Projektin organisaatio
3.1 Projektiryhmä
3.2 Vastuualueet
3.3 Sidosryhmät
4. Projektin tavoitteet ja päättäminen
4.1 Projektiryhmän tavoitteet
4.2 Asiakkaan tavoitteet
4.3 Projektin keskeyttämiskriteerit
4.4 Projektin päättämiskriteerit
5. Projektin resurssit
6. Projektissa käytettävät menetelmät ja työkalut
6.1 Katselmointi
6.1.1 Dokumenttien katselmointi
6.1.2 Ohjelmakoodin katselmointi
6.2 Työkalut
6.2.1 Kehitystyökalut ja apuohjelmat
6.2.2 Tiedonkulku
6.2.3 Raportointi
6.2.4 Dokumentitointi
6.2.5 Hakemistorakenne
6.2.6 Suunnittelumenetelmät
6.2.7 Ohjelmakoodin ulkomuoto ja kommentointi
6.2.8 Laadunvarmistus
6.2.9 Varmuuskopiointi
6.2.10 Palaverikäytännöt
7. Projektin ositus, vaiheistus ja resurssointi
7.1 Projektin suunnittelu
7.2 Toteutus 1
7.3 Toteutus 2
7.4 Toteutus 3
7.5 Toteutus 4
7.6 Luovutus
8. Mittarit, seuranta ja ohjaus
9. Riskienhallintasuunnitelma
10. Muuta
10.1 Projektiryhmän sisäinen koulutussuunnitelma
10.2 Asiakkaalle tarjottava koulutussuunnitelma
10.3 Asennussuunnitelma
Lähdeluettelo
Järjestelmän ylläpitäjällä tarkoitetaan tässä henkilöä, joka toimii järjestelmää käyttävässä organisaatiossa ja jonka tehtävänä on sovittaa järjestelmä organisaation tarpeisiin. Ylläpitäjän täytyy esimerkiksi määritellä organisaatiossa käytettävät dokumenttityypit ja tyyppeihin liittyvät attribuutit. Ylläpito ei ole ohjelmointia vaan siinä käytetään järjestelmään kuuluvia ylläpitotoimintoja.
Dokumenttien hallintajärjestelmä on projektiryhmän työn kannalta valmis olemassa oleva kokonaisuus, johon projektimme lopputulos tulee ylimääräisenä apuohjelmana järjestelmän ylläpitäjälle. Tämän johdosta projektimme kattaa vain tarkasti rajatun osan koko dokumenttien hallintajärjestelmästä. EAT -ylläpitotyökalun tehtävänä on helpottaa ja visualisoida ylläpitäjän käytössä olevia operaatioita. Tälläinen visualisointi helpottaa ja nopeuttaa ylläpitotehtäviä, vähentää virheiden määrää (joka saattaa olla asiakkaan kannalta huomattava säästö, kun kyseessä on tuhannet tärkeät dokumentit) ja nostaa koko dokumenttien hallintajärjestelmän arvoa asiakkaiden silmissä.
EAT -työkalu tullaan rakentamaan Java:lla yhteensopivuuden maksimoimiseksi eri järjestelmissä, joista ylläpitotehtäviä voi joutua hoitamaan.
EAT -projektin ohella on menossa huomattava EDMS-järjestelmän kehitys, johon varaudutaan tekemällä EAT -työkalusta helposti muutettava tulevaisuuden muutoksia varten.
Dokumenttien hallintajärjestelmä on käytössä KONE Oyj:ssä, jossa sen alaisuudessa on lähes puoli miljoonaa dokumenttia. Tälläinen oikeassa käytössä olevan ympäristön olemassaolo tekee tuotteemme laatuvaatimuksista tiukan sekä motivoi ryhmän jäseniä, kun ohjelmisto ei jää vain teoreettiseksi tutkimukseksi. Koska EAT -työkalu tulee olemaan osa dokumenttien hallintajärjestelmää, tulee työkalu leviämään nykyisille ja tuleville asiakkaille koko järjestelmän mukana. Näin EAT -työkalua voidaan ajatella tuotteena sekä projektiryhmän että asiakkaan näkökulmasta.
EAT -työkalu on sekä tutkimusluonteinen että kaupallinen sovellus.
Alla oleva kuva näyttää EDMS-järjestelmän perusrakenteen.
Kaikki dokumenttien tieto on talletettu tietokantaan, jota ohjaa palvelin, johon asiakasohjelmat ottavat yhteyden. Tämän mahdollistaa EDMS-protokolla, joka piilottaa alla olevan tietokannan asiakas-ohjelmilta. Asiakas ohjelmat siirtävät protokollan määritelmien mukaan tietoa tietokantaan tai hakevat sitä sieltä. Myös erilaisten tilannetietojen hakeminen on mahdollista.
Asiakasohjelmia ovat mm. jo olemassa oleva tavallisen käyttäjän käyttöliittymä sekä komentorivipohjainen ylläpitäjän työkalu, jonka EAT -työkalu tulee korvaamaan.
Dokumenttien hallintajärjestelmän ylläpitäjä voi nykyisellään ohjata järjestelmää vain tekstimuodossa, kirjoittamalla käsin protokollan mukaisia käskyjä. Itse EAT -ohjelmiston toiminta tulee perustumaan valmiiseen protokollamäärittelyyn, jonka avulla ohjelma tulee kommunikoimaan TCP/IP-yhteyden (SSL valinnainen) yli protokollapalvelimen kanssa. Protokolla on ainoa, tarkasti määritelty, rajapinta ohjelmalle palvelimeen. Näin ylläpito-ohjelma on saatu rajattua muusta järjestelmästä erilleen.
Asiakkaamme on lähinnä tutkimustoimintaa harrastava instituutio, joten heillä ei ole suurempia taloudellisia tavoitteita projektin suhteen. Järjestelmän kehittämiselle ei ole asetettu kriittisiä takarajoja. PDMG-ryhmä (joka on osa asiakkaan organisaatiota) tulee jatkamaan EAT -projektin lopputuotteen kehittämistä itsenäisesti kun projektiryhmä on sen luovuttanut asiakkaalle.
Asiakkaalle ei tule huomattavia laitteisto- tai ohjelmistokuluja (jos ollenkaan), koska suurin osa projektin työstä on suunniteltu tehtäväksi korkeakoulun tarjoamilla laitteilla ja ohjelmistoilla. Asiakas on kuitenkin tarjoutunut kustantamaan kohtuuhintaisia ohjelmistoja projektiryhmän käyttöön, jos se katsotaan tarpeelliseksi. Lisäksi asiakas on perustamassa ohjelmatyöhuonetta toimitiloihinsa. Ohjelmatyöhuone on tänä vuonna vain projektiryhmämme käytössä. Näillä näkymin sinne tulee ainakin yksi tietokone, jossa voimme käydä testaamassa EAT -työkaluamme kun sen kehitys on tarpeeksi pitkällä testavaksi erillään kehitysympäristöstä.
Asiakas on osoittanut ryhmän konsultiksi asiakkaan puolelta ohjaajan, jonka aikaa välttämättä menee projektiryhmämme ohjaukseen. Tämä ajan kulutus on luonnollisesti pois ohjaajan muusta työajasta ja aiheuttaa kuluja asiakkaalle. Asiakas on kuitenkin ottanut tämän huomioon tarjotessaan työtään projektiryhmälle. Ohjaajan panostus projektiryhmään oletetaan vähenevän mitä pidemmälle projekti etenee.
Integrointikuluja ei järjestelmän luovutuksen tms. vaiheen aikana tule, koska EAT -työkalu on aivan oma lohkonsa EDMS-järjestelmässä, eli EAT -työkalun valmistuminen ei aiheuta mitään muutoksia jo olemassa olevaan järjestelmään. Lisäksi EDMS-järjestelmä toimii hyvin, vaikkei EAT -työkalua olisikaan.
Lisää sopimuksen yksityiskohtia voi tiedustella joko projektipäälliköltä tai asiakkaan edustajalta.
Kappale kaksi kuvaa projektin kannalta oleellisia termejä ja määritelmiä.
Kappale kolme kuvaa projektiryhmän organisaatiota, vastuualueita ja sidosryhmiä.
Kappale neljä sisältää tietoa projektin tavoitteista asiakkaan ja projektiryhmän näkökulmasta. Lisäksi on määritelty projektin keskeyttämis- ja lopettamiskriteerit.
Viides kappale sisältää arvioita ja faktoja projektin resursseista ja niiden aikataulutuksesta.
Kappale kuusi kuvaa projektin työkaluja ja menetelmiä aina katselmoinnista hakemistorakenteisiin.
Kappale seitsemän sisältää tarkemman kuvaksen projektin vaiheistuksesta ja resurssien jakamisesta projektihenkilöiden kesken.
Kappaleessa kahdeksan on kuvailtu projektin mittareita.
Kappaleessa yhdeksän on tärkeää tietoa projektin riskienhallinnasta.
Kappaleeseen kymmenen on kerätty muita projektiin liittyviä asioita.
API | Application Program Interface eli sovellusohjelmointirajapinta määrittelee liitynnät, joilla ohjelmoija pystyy käyttämään erillistä ohjelmakomponenttia omassa ohjelmassaan. |
Asiakas | Tarjoaa projektiryhmälle ongelman, johon toivoo ratkaisua. Tässä tapauksessa kyseessä on järjestelmä (koodi ja dokumentaatio). Ottaa vastaan projektin lopputuotteen. |
AWT | Abstract Window Toolkit, Javan graafisen käyttöliittymän rakentamiseen tarvittavat työkalut. |
Black box-testaus | Testausmenetelmä, jossa testaaja ei oleta mitään testattavan ohjelman rakenteesta vaan testaa ohjelmaa vain ohjelman rajapintamäärittelyiden perusteella. |
Burana | Virhe- ja kokoraportointijärjestelmä joka tarjotaan projektiryhmän käyttöön Ohjelmatyö-kurssin puolesta. |
CVS | Concurrent Versions System eli UNIX-järjestelmän ohjelma joka mahdollistaa ryhmän ohjelmoijia tallentamaan ja palauttamaan eri versioita lähdekoodista. |
EAT -työkalu | EDMS Administrator's Tool, on projektin lopputuloksena saatavan ohjelmiston (+dokumentaatio) nimi. |
EDMS | Engineering Data Management System, eli PDMG-ryhmän toteuttama tuotetiedon hallintajärjestelmä. |
EDMSv2 | EDMS-järjestelmän kehityksen tuloksena syntyvä EDMS versio 2. PDMG-ryhmä suunnittelee kyseistä järjestelmää rinnakkain EAT-projektin kanssa. |
GUI | Graphical User Interface, graafinen käyttöliittymä |
Integrointitestaus | Integrointitestauksessa testataan miten modulit toimivat yhteen ja järjestelmän toimintaa kokonaisuutena. |
Java | Java on Sun Microsystems Inc.:n kehittämä olio-pohjainen ohjelmointikieli. Java käyttää virtuaalikonetta, mikä tekee sen laiteriippumattomaksi. Javalla voidaan tehdä joko sovellusohjelmia tai appletteja, jotka upotetaan HTML -tiedostoon. |
JavaDoc | JDK:hon kuuluva työkalu, jolla voidaan tehdä HTML-dokumentaatioita suoraan java-koodista käyttämällä tiettyjä merkintöjä (tag) kommenteissa. |
JDK | Java Development Kit, paketti, johon kuuluu Java-ohjelmointia tukeva API ja perustyökalut. |
Jedi | Tavallisen käyttäjän EDMS-järjestelmän graafinen Javalla ohjelmoitu käyttöliittymä. |
JRE | Java Runtime Environment eli Java-virtuaalikone käännetyn Java-koodin ajamiseen. |
Järjestelmätestaus | Järjestelmätestauksessa testataan, toteuttaako järjestelmä sille asetetut vaatimukset. |
Katselmointi | On vähintään kahden ihmisen tapahtuma, jossa katselmoidaan joko koodia tai dokumentaatiota. Toisen henkilöistä tulee olla valtuutettu hyväksymään katselmoinnin kohde katselmoiduksi katselmoinnin jälkeen. Katselmoinnin proseduuria on käsitelty muualla tässä projektisuunnitelmassa. |
Koodaus | Tässä dokumentissa synonyymi ohjelmoimiselle, lähinnä ammattikieltä. |
Käytettävyystestaus | Käytettävyystestauksessa testataan ja kehitetään testattavan ohjelman käytettävyyttä. |
Luke | Jedi-ohjelmiston toinen osa, joka sisältää varsinaisen käyttöliittymäkoodin. Luke kutsuu Obiwania aina kun se haluaa lukea tai muokata EDMS-tietokannassa olevia tietoja. |
Modulitestaus | Modulitestauksessa testataan itsenäisen ohjelman osan, modulin, toimintaa. |
Obiwan | Jedi-ohjelmiston ensimmäinen osa. Kirjasto joka tarjoaa oliopohjaisen rajapinnan palvelimella olevaan tietoon. |
Ohjaaja | Ohjaa asiakkaan toivomusten mukaan projektiryhmää, eli toimii toteutuksen konsulttina projektiryhmälle. |
PDMG | Product Data Management Group on TAI-tutkimuslaitoksessa toimiva tuotetiedon hallintaa tutkiva ryhmä. |
PDM -ryhmä | On projektiryhmän nimi ohjelmatyökurssilla. |
Pinja | Pinja on Obiwanin korvaaja. Pinja tukee useampaa EDMS-käyttäjää samassa prosessissa, kun taas Obiwania voi käyttää vain yksi käyttäjä kerralla. Mahdollistaa Servlet -tekniikan käytön. |
Projektiryhmä | Projektiryhmällä tarkoitaan Tietojenkäsittelyopin ohjelmatyö -kurssin alussa muodostettua (seitsemän hengen) ryhmää, jonka tehtävänä ontoteuttaa asiakkaan vaatima järjestelmä. |
Servlet | Java-pohjainen palvelintekniikka www-ympäristöön. |
socket | Socket on ohjelmointirajapinta TCP-yhteyksien käyttämistä varten käytännössä kaikissa ympäristöissä. Unixeissa ja Javassa käytetään pelkästään termiä Socket, Windowsissa vastaava rajapinta on nimeltään WinSock. |
SSL | Secure Socket Layer, protokolla turvallisten TCP-yhteyksien luomiseksi TCP/IP-protokollan yli. SSL-yhteydessä avataan ensin tavallinen TCP-yhteys, suoritetaan sen yli salausavainten vaihto, ja tämän jälkeen kaikki yhteyden yli menevä tieto salataan avaintenvaihdossa sovitulla avaimella ja salausmenetelmällä. |
Swing | AWT:n päälle tehty Javan perusluokkiin kuuluva komponentti. Swing-paketista löytyy erilaiset luokat käyttöliitymän rakentamiseen. |
TAI-tutkimuslaitos | On Teknillisen Korkeakoulun erillinen tutkimusyksikkö. |
TCP/IP | Transmission Control Protocol / Internet Protocol. Internetissä käytettävä protokollapino, jossa IP on verkkokerrosprotokolla ja TCP kuljetuskerroksen protokolla. TCP:n avulla saadaan kahden Internetissä olevan koneen välille läpinäkyvä kaksisuuntainen bittiputki. |
Tirana | Tuntiraportointijärjestlmä joka tarjotaan projektiryhmän käyttöön Ohjelmatyö-kurssin puolesta. |
Työn johtoryhmä | Asiakas, mahdollinen ohjaaja ja toimittaja vahvistettuna opintojakson vetäjillä muodostavat yhdessä työn johtoryhmän. |
UML | Unified Modeling Language eli notaatio määrittelylle, rakentämiselle, dokumentaatiolle ja visualisoinnille ohjelmistotuotannossa. |
ViCa | Visualization Client Application on visualisointityökalu Tirana-järjestelmällä syötettyyn tietoon. |
White box-testaus | Testausmenetelmä, jossa testaaja tuntee testattavan ohjelman rakenteen ja tekee testinsä tähän tietoon pohjautuen. |
Ryhmä: PDM
Kotisivu: http://www.hut.fi/~tratilai/pdm/
Email: tratilai@cc.hut.fi
Projektiryhmä koostuu aloitushetkellä seitsemästä henkilöstä. Projektin jäsenet muodostavat projektiryhmän, jonka tarkoitus on tuottaa asiakkaalle heidän haluamansa ohjelmisto. Asiakas on työn tilaaja, jonka osoittama ohjaaja ohjaa ja konsultoi projektiryhmää toteuttamaan ohjelmiston kuten asiakas sen haluaa.
Projektin jäsenillä ei ole muita sitoumuksia projektiin, kuin tässä projektisuunnitelmassa mainitut.
Käsittelemme projektissamme vastuualueita, joka poikkeaa kurssin ehdottamasta rooli-ajattelusta. Kyseessähän ei tulisi olla mikään rooli, jota näytellään, vaan vakavasti otettava vastuu jostain tietystä projektin osasta. Näin päädyimme "vastuualue"-käsitteeseen. Vastuualue ei kuitenkaan tarkoita, että kyseinen henkilö tekisi vastuualueensa määrittelemät asiat yksin. Koko projektiryhmä osallistuu lähes kaikkeen toimintaan projektissa (tai kuten tässä ja muissa dokumenteissa on määrätty), mutta vastuualueen henkilö on vastuussa lopputuloksesta ja projektin aikana vastuualueensa kontrolloimisesta.
Yllä oleva kuva selventää ryhmän rakennetta.
Ryhmä koostuu ohjelmoijista (kuvassa ympyröity), joita ovat kaikki muut paitsi Timo. Projektipäällikön ei ole hyvä osallistua koodaukseen vaan yrittää pitää näkemys koko projektin tilasta ikään kuin ulkopuolelta katsottuna, jota ei välttämättä pystyisi tekemään jos esimerkiksi ohjelmoisi jotain tiettyä moduulia projektissa.
Olemme jakaneet ryhmän pareihin, jotka tekevät mahdollisimman paljon samankaltaisia töitä projektin aikana tai ainakin tuntevat parinsa työn periaatteet. Tätä auttaa esimerkiksi se, että moduulitasolla koodi katselmoidaan ja testataan myös parin toimesta. Tällä parannetaan mahdollisuuksia selviytyä tilanteesta, jossa jokin ryhmän jäsen olisi estynyt suoriutumaan tehtävistään syystä tai toisesta ja projektiryhmä joutuisi jatkamaan vajaamiehisenä.
Yllä olevaan organisaatiomalliin ovat sitoutuneet kaikki ryhmän jäsenet. Parit on yritetty muodostaa kiinnostuksen, taitojen ja projektin työtehtävien kompromisseina. Taitotasolla parit on muodostettu siten, että kokenut Java-ohjelmoija on laitettu vähemmän kokeneen pariksi. Tällä yritetään maksimoida ryhmän sisäistä kompetenssia, kun vähemmän kokenut pääsee työskentelemään kokeneen parina ja luultavasti oppii paljon. Tätä kompetenssin kasvua voi toivottavasti jokainen hyödyntää jo projektin aikana omassa työssään.
Anssi on kokenut Java-ohjelmoija, jonka parina yleisessä koodauksessa työskentelee Miiku. Jonne on erittäin hyvä Java-käyttöliittymien kehittäjä, jonka pariksi tulee tietoliikenteestä paljon tietävä Jaakko. Tero hyvänä koodaajana, sekä tietotekniikan yleismiehenä ja Jukka peruskoodaajana muodostavat yhteen sopivan parin. Lisäksi Jukalla on erityisasema, kun hän lisäksi toimii Timon varamiehenä projektipäälllikön tehtävissä (katkoviiva kuvassa). Jukan varaprojektipäällikön tehtäviin kuuluu olla selvillä Timon hommista ja suorittaa tarvittavat operaatiot (esimerkiksi dokumenttipalautukset) silloin kun Timo on estynyt. Koko rakennettu projektiorganisaatio on myös tarkoitettu tiettyjen riskien minimoimiseen, joista lisää riskienhallintaosassa.
Joillakin projektiryhmän jäsenillä on useita vastuualueita. Tähän tulokseen on tultu yhteisissä palavereissa, joissa on kyselty henkilöiden halukkuutta, taitoa ja aikaa vastata vastuualueistaan. Näissä tapauksissa vastuualueiden töiden aikataulutus on voitu tehdä järkevästi, eikä samalle henkilölle tule liikaa päällekkäisiä toimia vastuualueensa johdosta. Ohjelmistosuunnittelu -vastuualueissa kaikilla on vastuu vain omasta koodistaan.
Tässä ja myöhemmissä dokumenteissa tullaan projektiryhmän jäseniin viittaamaan etunimellä, sillä päällekkäisyyksiä ei ole ja tapa on selkeämpi ja informatiivisempi kuin esimerkiksi nimikirjaimet "TR".
Nimi: Timo Ratilainen
Vastuualue(et): projektipäällikkö, web-master, asiakasvastaava
Email: tratilai@cc.hut.fi
Kotisivu: www.hut.fi/~tratilai
Muuta:
- työkemusta yli kaksi vuotta: kehittämistä, testausta
ja dokumentointia isoissa ohjelmistoprojekteissa (>0,5 MLOC) ympäristöinä
UNIX (HP, SUN) ja NT, kielinä C ja C++
- BASIC, C/C++, Java, Scheme, konekieli, HTML, PRO-C (SQL), OMT++, OOA/OOD,
OpenGL, Microsoft Foundation Class (MFC), VC++, Rational Rose
- Tietotekniikan osastolta, pääaine Ohjelmistotuotannosta
tietotekniikan osastolta ja sivuaine Kansainvälinen projektijohtaminen
tuotantotalouden osastolta, 5. vuosikurssi 123ov
Nimi: Jukka Hynninen
Vastuualue(et): vara-projektipäällikkö, dokumentointivastaava,
ohjelmistosuunnittelija
Email: jthynnin@cc.hut.fi
Kotisivu: www.hut.fi/~jthynnin
Muuta:
-työkokemusta mm. työasematuesta, verkkopankin ylläpidosta
sekä tietoturvakonsultointia
-ohjelmointikielissä merkittävin osaaminen Perl, shelliskriptit,
mutta myös Java, C, C++ ja assembler tuttuja, ylläpito (pienimuotoinen
ohjelmointi, laitteistojen ja ohjelmistojen asennusta, virittelyä,
ohjeistusta) erityisesti Solaris/Linux-ympäristöissä, NT,
järjestelmien haavoittuvustestaus
-Tietotekniikan osastolta, pääaine Tietoliikenneohjelmistot
(tietoturvan säie) tietotekniikan osastolta, sivuaine Yritysstrategia
ja kansainvälinen liiketoiminta tuotantotalouden osastolta, 5. vuosikurssi
138ov
Nimi: Jonne Loikkanen
Vastuualue(et): käyttöliittymävastaava,
ohjelmistosuunnittelija
Email: jloikkan@cc.hut.fi
Kotisivu: www.hut.fi/~jloikkan
Muuta:
- Ollut ohjelmistoalan töissa lähes 2 vuotta. Viimeisimmässä
työprojektissa ollut toteuttamassa käyttöliittymää
Weblogic Serveriin perustuvaan sovellukseen
- Java, C/C++... Erityisesti Java osaamista. Työskennellyt Oraclen
tietokantojen parissa, vahvat SQL-taidot, html, xml
- Tietotekniikan osastolta, pääaine Ohjelmistojärjestelmät,
sivuaine Tietoliikenneohjelmistot, 4. vuosikurssi, 100ov yli neljän
keskiarvolla
Nimi: Anssi Keskinen
Vastuualue(et): ohjelmistosuunnittelija
Email: akeskine@cc.hut.fi
Kotisivu: www.hut.fi/~akeskine
Muuta:
- Työkokemusta reilut 1,5 vuotta: ohjelmointia Javalla NT ja UNIX ympäristöissä.
HTML:ää satunnaisesti työssä ja yhdistystoiminnassa
- Java(RMI, EJB, JDBC) ja HTML, C/C++, PL/SQL, Perl, PHP, JavaScript,
olioteknologia ja -mallinnus, UML, GNU-työkalut, VisualAge for Java,
JBuilder, WebLogic (EJB server)
- Sähkö- ja tietoliikennetekniikan osastolta, pääaine
Ohjelmistojärjestelmät, sivuaine Vuorovaikutteinen digitaalinen
media, 140,5ov
Nimi: Jaakko Tuomimäki
Vastuualue(et): tietoliikennevastaava, ohjelmistosuunnittelija
Email: torakka@iki.fi
Kotisivu:
Muuta:
- Työkokemus: kaksi vuotta osa-aikaisena www-ylläpitäjänä
ja mikrotukena, kaksi kesää tekemässä ylläpidollisia
ja ohjelmien asennukseen liittyviä perl-skriptejä.
- Perl, C/C++, Java, javascript, TCP/IP, SQL, UML, HTML
- Tietotekniikan osastolta, pääaineena Tietoliikenneohjelmistot
ja sivuaineena Ohjelmistojärjestelmät, 5. vuosikurssi 118,5ov
Nimi: Miiku Jaakkola
Vastuualue(et): laatuvastaava, testausvastaava, järjestelmävastaava,
ohjelmistosuunnittelija
Email: mvjaakko@cc.hut.fi
Kotisivu:
Muuta:
- C/C++, Java, Scheme, Perl, Prolog, konekieli, SQL, HTML, UML, servletit,
OpenGL, Clearcase
- Tietotekniikan osasto, pääaine Ohjelmistojärjestelmät,
sivuaine Vuorovaikutteinen digitaalinen media, 4. vuosikurssi 135ov
Nimi: Tero Kilkanen
Vastuualue(et): arkkitehtuurivastaava, ohjelmistosuunnittelija
Email: tkilkane@cc.hut.fi
Kotisivu:
Muuta:
- Tietoliikennealan töissä 1,5 vuotta tutkinut QoS:ää
ja WLAN:ia.
- C/C++, Java, assembler, Scheme, GNU ohjelmointityökalut, TCP/IP,
SQL ja UML
- Tietotekniikan osastolta, pääaine Tietoliikenneohjelmistot,
sivuaine Teletekniikka, 5. vuosikurssi, 130ov
Seuraavassa on kuvattu vastuualueiden tehtävät yleisluontoisesti.
Käytännössä töitä tehdään ryhmänä, mutta vastuualueen vastaava yrittää kontrolloida tehtäväkenttänsä tapahtumia, sillä projektipäälliköllä ei ole aikaa seurata kaikkia tapahtumia.
Projektipäällikkö | Projektinhallinta, aikataulutus, seuranta, vastuu projektiryhmän jäsenistä (esimerkiksi työmäärästä), kokonaisvastuu |
Varaprojektipäällikkö | Projektinhallinta kun projektipäällikkö ei paikalla, tarkkailee projektipäällikön toimia |
Web-master | Hoitaa PDM-ryhmän kotisivut (varaprojektipäälliköllä lisäksi kirjoitusoikeus) |
Asiakasvastaava | Vastaa asiakas-ryhmä -suhteesta, kommunikoinnista ja suunnittelusta |
Dokumentointivastaava | Vastaa dokumenttien laadusta ja yhtenäisyydestä. Tekee asiakastapaamisten muistiot |
Ohjelmistosuunnittelija | Vastaa omista ohjelmistomoduuleista ja niiden moduulitestauksesta |
Käyttöliittymävastaava | Vastaa ohjelman käyttöliittymästä, sen dokumentoinnista ja suunnittelusta |
Tietoliikennevastaava | Vastaa ohjelman tietoliikenneasioista, turvallisuudesta ja suunnittelusta |
Laatuvastaava | Vastaa työmenetelmien- ja prosessien suunnittelusta ja noudattamisesta |
Testausvastaava | Vastaa ohjelmiston testauksesta |
Järjestelmävastaava | Vastaa laitteiston (kehitysympäristön) suunnittelusta, toteutuksesta ja toimivuudesta koko projektin ajan |
Arkkitehtuurivastaava | Vastaa ohjelmiston arkkitehtuurin suunnittelusta asiakkaiden vaatimusten mukaan |
Nimi: Asko Martio
Rooli: asiakas
Toimenkuva: TKK/ TAI-tutkimuslaitos
Email: asko.martio@hut.fi
Puhelin: 09-4514887
Nimi: Hannu Peltonen
Rooli: ohjaaja
Toimenkuva: TKK/ TAI-tutkimuslaitos
Email: hannu.peltonen@hut.fi
Puhelin: 09-4513244
Lisäksi sidosryhmäksi voidaan laskea kurssin vetäjät, joiden yhteystiedot ja roolit ovat kurssin kotisivulta[4].
EDMS-järjestelmän asiakkaat (kirjoitushetkellä ainoastaan KONE Oyj) voidaan ajatella sidosryhmäksi, mutta ainoastaan TAI-tutkimuslaitoksen puolesta, koska projektiryhmään ne heijastuvat ainoastaan TAI-tutkimuslaitoksen kautta. Meillä ei ole tarvetta (mahdollisuutta) vaikuttaa asiakkaamme asiakkaan päätöksiin. Lisäksi kyseisen sidosryhmän vaikutuksen määrä on kyseenalaista, sillä TAI-tutkimuslaitos tekee itsenäistä tutkimustoimintaa EDMS-järjestelmän pohjalta, eikä siihen vaikuta esimerkiksi taloudellisesti KONE Oyj:n toiminta.
Projektilla ei ole muita merkittäviä sidosryhmiä joilla olisi vaikutusta ryhmän
toimintaan.
Projektiryhmän tavoitteet luonnollisesti poikkevat asiakkaan vastaavista, sillä projektiryhmän tavoitteet muodostuvat henkilöiden motivaatiotekijöistä kun taas asiakkaan vaatimukset järjestelmän ominaisuuksista. Projektiryhmä on määritellyt oman tavoitteensa yhteisissä palavereissa tiivistetysti seuraavasti:
"Projektiryhmämme tavoite on oppia mahdollisimman paljon projektimuotoisesta ohjelmistokehityksestä, toimittaja-asiakas -suhteesta sekä ryhmätyön merkityksestä projekteissa. Lisäksi pyrimme luonnollisesti omien etuuksiemme mukaan saamaan kurssista hyvän arvosanan, joka tukee ensimmäisen kohdan toteutumista."
Hyvän arvosanan saaminen -vaatimus on priorisoitu joustavaksi, eli siitä voidaan tinkiä jos esimerkiksi arvosanan 5 saaminen edellyttäisi kohtuutonta työmäärää.
Asiakas on määritellyt pyynnöstämme tavoitteensa tiivistetysti:
"Projektin tavoitteena on kehittää Java-ohjelma, jonka avulla voi helposti katsella ja muuttaa EDMS-tietokannan määrittelyitä. Ohjelman rakenteen pitää olla sellainen, että ohjelmaan voidaan myöhemmin lisätä uusia toimintoja EDMS:n tietomallin muuttuessa."
Ei-toiminnallisia vaatimksia on listattu seuraavassa. Ei-toiminnallisia vaatimuksia ei ole priorisoitu tarkemmin, sillä listassa olevat vaatimukset tulevat automaattisesti tehdyksi, kun projekti etenee ja projektille määriteltyjä laatuprosesseja noudatetaan.
- Ohjelma tehdään Javalla, JDK versio 1.2
- Ohjelman tulee toimia Windows-PC:ssä
- Ohjelmakoodin tulee olla selkeätä
- Ohjelman tulee olla laajennettavissa
- Ohjelman tulee olla helppokäyttöinen
- Ohjelman tulee olla hyvin dokumentoitu
- Englanniksi kirjoitetut HTML muotoiset tekninen määrittely ja käyttöopas -dokumentit
Itse järjestelmän vaatimuksia on priorisoitu MUST, USEFUL ja NICE TO HAVE -tasoilla, jotka ovat luokkina selventävimpiä kuin esimerkiksi pelkät numerot.
Asiakas on priorisoinut ohjelman toiminnallisia vaatimuksiaan seuraavasti:
- MUST: Oliotyyppien lisääminen ja poistaminen
- MUST: Arvolistojen käsittely
- MUST: Attribuuttien lisääminen ja poistaminen ja olemassa olevien attribuuttien ominaisuuksien muuttaminen
- USEFUL: SSL-yhteydet tavanomaisten socket-yhteyksien lisäksi
- USEFUL: Tilakaavioiden käsittely
- USEFUL: Dokumenttien varausvälin käsittely
- NICE TO HAVE: Varoitus kahdesta yhtäaikaisesta ylläpitäjästä
- NICE TO HAVE: Käyttäjien lisääminen ja poistaminen
- NICE TO HAVE: Monitor-toiminnallisuus
- NICE TO HAVE: Protokollaviestien käsinkirjoitus
- NICE TO HAVE: Undo-toiminto
Yllä oleva priorisointi on tehty vaatimuksille, jotka on ryhmitelty suunnilleen samoja toimintoja sisältäviksi ryhmiksi. Jokainen ryhmä sisältää pienempiä ja tarkempia vaatimuksia, mutta niiden kuvaus on jätetty vaatimusmäärittelyyn.
Asiakkaan vaatimusten "Top 10" ovat yllä olevissa listoissa ei-toiminnalliset vaatimukset ja MUST -luokan vaatimukset. Kuten helposti huomataan, on asiakkaalla verrattain vähän toiminnallisia vaatimuksia. Tämä johtuu siitä, että järjestelmän protokolla rajoittaa tehokkaasti tapoja joilla järjestelmän voimme tehdä ja toisaalta asiakkaalla ei ole tarvetta määritellä tarkkoja vaatimuksia käyttöliittymästä. Lyhesti voidaan sanoa, että olemme onnistuneet, jos saamme protokollan mukaiset toiminnot tehtyä; käyttöliittymästä voimme tehdä sellaisen kuin haluamme.
Projektin tavoitteena on toteuttaa kaikki edellisen kappaleen listoissa mainitut toiminnallisuudet.
Jos projektissa joudutaan karsimaan vaatimuksista, niin se aloitetaan NICE TO HAVE toiminnoissa, joita voi joustavasti jättää pois lopputuotteesta. Vaatimusten pois jättäminen on tapauskohtaista ja riippuu voimakkaasti projektin silloisesta tilasta, resursseista, motivaatiosta ja asiakkaan silloisista vaatimuksista.
Määrittelimme ehdottoman rajan projektin keskeyttämiselle: projekti keskeytetään jos keskimääräinen projektin jäsenen työmäärä ylittää 250 tuntia ennen luovutusvaihetta.
Kurssin puolesta tulisi työtä olla noin 200 tuntia (=5ov), joten on kohtuutonta vaatia yli 250 tunnin työmäärää. Keskeyttämisen sattuessa neuvottelemme asiakkaan (ja tietenkin kurssijohdon) kanssa jatkosta, esimerkiksi toimitamme olemassa olevan järjestelmän ja asiakas jatkaa kehitystä siitä. Toivottavasti tätä tilannetta ei tule ja se pyritäänkin välttämään monin seurantakeinoin jo hyvissä ajoin.
Projektin keskeyttämistilanteita on lisäksi lueteltu riskienhallintaosiossa.
Projektin päättäminen tapahtuu projektiryhmän ja asiakkaan yhteisessä tapaamisessa, joka sovitaan tarkemmin projektin edetessä. Tässä tapaamisessa tulee olla paikalla vähintään kaksi projektiryhmän edustajaa sekä asiakkaan edustaja. Tapaamisessa tulee päästä yksimielisyyteen projektin päättämisestä.
Projektille ei ole asetettu (paitsi kurssin toimesta) päättymispäivää, vaan siitä sovitaan erikseen, kuten yllä mainittu, lähempänä projektin pakollista loppumista, joksi lasketaan kurssin toimesta asetettu päättymispäivä.
Seuraavassa on taulukoitu projektin mallin mukaisesti suunnitellut tuntimäärät per henkilö / toteutuneet tuntimäärät per henkilö.
Timo | Jukka | Tero | Jonne | Jaakko | Anssi | Miiku | Yhteensä | |
PS | 60 / | 40 / | 25 / | 20 / | 20 / | 15 / | 30 / | 210 / |
T1 | 40 / | 50 / | 50 / | 30 / | 30 / | 25 / | 35 / | 260 / |
T2 | 30 / | 50 / | 35 / | 50 / | 40 / | 30 / | 30 / | 265 / |
T3 | 20 / | 20 / | 30 / | 50 / | 40 / | 50 / | 35 / | 245 / |
T4 | 30 / | 20 / | 30 / | 40 / | 40 / | 40 / | 40 / | 240 / |
LU | 20 / | 20 / | 30 / | 10 / | 30 / | 40 / | 30 / | 180 / |
Yhteensä | 200 / | 200 / | 200 / | 200 / | 200 / | 200 / | 200 / | 1400 / |
Tarkempaan projektiresurssointiin on käytetty MS Project -ohjelmistoa, kuten kurssilla on vaadittu. Siinä on otettu huomioon mahdolliset lomat, tenttikaudet ja jäsenten muut estymiset. Lisäksi projektin aikataulutukseen on varattu huomattava määrä ns. suunnittelematonta työtä, koska projektin aikaresurssoinnissa suositellaan käytettävän jopa 10-50% marginaaleja. Tämä mahdollistaa tarvittaessa joustavat poikkeamat projektisuunnitelman aikataulutuksesta. Aikataulutus tehdään silti mahdollisimman tarkasti, eikä määrittelemättömään työn antamaan näennäiseen turvaan luoteta liikaa.
Ohjaaja on kertonut pystyvänsä konsultoimaan projektiryhmäämme koko projektin ajan, mutta kyseiselle työajalle ei ole erikseen tehty varauksia. Lisäksi asiakkaan työntekijä, Kim Gunell, yksi Jedi-työkalun kehittäjistä, on luvannut auttaa tarvittaessa.
Käytämme ohjelmistokehitykseen korkeakoulun tarjoamia laitteistoja. Osa projektiryhmän jäsenistä pystyy käyttämään myös kotitietokoneitaan apuna kehityksessä. Suurin rajoittava tekijä voi olla ohjelmistotyöluokan suuri käyttöaste, koska luokassa on rajallinen määrä koneita, joista osa on vielä varattu tietyille ryhmille. Lisäksi luokkaa käyttää sekä ohjelmatyö- että ohjelmistojen testaus -kurssin oppilaat. Luokan käyttöä täytyy suunnitella tarkemmin ryhmän kesken, jos ilmenee ongelmia.
Asiakas tarjoaa ns. integrointi-koneen käyttöömme Spektrin tiloissa. Kyseisen koneen käytössä ei ole suurempia rajoituksia, kunhan kulkuoikeudet on saatu kuntoon.
Teoreettinen projektin laskutus olisi 421000 markkaa. Tämä muodostuu 300 markan tuntiveloituksesta per projektijäsen, sekä kirjojen ym. materiaalin hankinnasta(1000 markkaa). Kurssin sääntöjen mukaan projektiryhmän jäsenet eivät saa nauttia etuuksia kuten palkkaa, bonuksia tai työsuhdeasuntoja asiakkaan puolelta.
Projektin aikana toteutetaan katselmointikäytäntöä kaikille palautettaville dokumenteille sekä tuotetulle koodille. Katselmoinnilla pyritään takaamaan palautusten korkea laatu sekä koodin virheettomyys, selkeys ja yhdenmukaisuus. Tutkimusten mukaan katselmointi on tehokkaampaa kuin testaus virheiden löytämisen suhteen (katselmointi löytää 45-70% virheistä, kun testaus vain 15-50%), joten panostamme erityisesti katselmointiin[6].
Julkaistavan dokumentoinnin ja koodin lisäksi ryhmä epävirallisesti katselmoi tapaamisissaan tärkeitä suunnitelmia esim. arkkitehtuurista tai testaussuunnitelmista.
Yllä oleva kuva esittää projektin dokumenttien palautusjärjestelmää. Ainoastaan Timolla (ja erikoistapauksissa Jukalla) on oikeus palauttaa vaadittuja dokumentteja kurssin vetäjille. Tämä tapahtuu siten, että vaikka koko projektiryhmä dokumentteja tuottaa, menevät ne aina katselmoinnin kautta palautukseen ja katselmoinnin voi ainoastaan hyväksyä Timo (erikoistapauksissa Jukka).
Palautusjärjestelmä on vielä varmistettu siten, että ainoastaan Timolla (ja varmuudeksi Jukalla) on käyttöoikeudet ryhmän kotisivulle[5] ja sitä kautta dokumenttien muuttamiseen.
Katselmoinnin säännöt dokumenteille ovat:
katselmoinnin hyväksyjän lisäksi vähintää yksi katselmoija (mieluiten mahdollisimman moni ryhmän jäsenistä)
katselmoitava dokumentti tulee olla paperiversiona jokaisella katselmoijalla ja niihin tulisi tutustua ennen katselmointi tilaisuutta
katselmoinnissa luetaan rauhassa dokumentti pienissä osissa (joku selittänyt ensin osan tarkoituksen) ja joka vaiheen jälkeen sisällöstä keskustellaan
virheet, puutteet yms. otetaan ylös ja ennen dokumentin hyväksyntää korjataan dokumenttiin
hyväksynnästä tulee merkintä dokumenttiin ja versionumero hyppää seuraavalle kokoluvulle (esim. 3.4 -> 4.0)
Luovuimme vaiheen T2 aikana tehdyllä päätöksellä koodikatselmoinnista.
Projektiryhmän kehitysympäristö on Niksulassa Teknillisessä Korkeakoulussa Tietotekniikan talolla Espoon Otaniemessä.
Laitteistopohjana UNIX-järjestelmä vaikkakin itse EAT-työkalu tehdään Windows NT -ympäristöön jossa sitä myös testataan
Seuraavaan on lueteltu projektiryhmän käyttämät ohjelmistot kehitykseen ja testaukseen (vastuuhenkilönä on järjestelmävastaava):
Java Development Kit (JDK1.2)
JRE Windows-PC
koodieditointi vapaata kehittäjän mieltymysten mukaan: Emacs, notepad... koska versiohallinta keskitettyä
CVS versionhallintaan
debuggaus: JDB tulee JDK:n mukana
Rational Rose 2000 Enterprise suunnitteluun
MS Project 98 projektinhallintaan
Netscape Composer ja Microsoft FrontPage dokumentointiin
Pyrimme tekemään ohjelmistokehityksestä mahdollisimman joustavan ohjelmistokehittäjän näkökulmasta, eli jokainen voi tehdä koodinsa missä haluaa, mutta versionhallintaan koodi täytyy tuoda Niksulan kautta (suljettu järjestelmä CVS:n alla). Joustavan ohjelmistokehityksen mahdollistaa järkevä arkkitehtuurisuunnittelu, tarpeeksi pienet ja itsenäiset moduulit, sekä tarkasti määritellyt rajapinnat moduulien välillä.
Tiedonkulku tapahtuu suurimmaksi osaksi sähköpostilla. Ryhmällä on sisäinen sähköpostilista. Viestintä asiakkaan kanssa tapahtuu myös sähköpostitse. Kurssin vetäjien kanssa käytämme sähköpostia, korkeakoulun uutisryhmiä sekä erilaisia raportointijärjestelmiä, kuten myöhemmin kuvattu.
Koska kurssijohdon tai asiakkaan taholta ei ole tullut vaatimuksia ylläpitää projektille kotisivuja, on ryhmä valjastanut EAT-projektin kotisivut omaan käyttöönsä[5]. Kotisivuja käytetään yleiseen tiedon jakamiseen, projektidokumenttien välitykseen ja hyödyllisten linkkien jakamiseen.
Projektiryhmä raportoi kurssin vetäjille kuten kurssidokumentaatiossa on määritelty. Tämä käsittää seuraavien järjestelmien käytön:
Burana-järjestelmän virhe- ja kokoraportointiin
Tirana-järjestelmän tuntiraportointiin
Lisäksi projektipäällikkö tekee Vica-työkalulla tarvittaessa raporttitiedon visualisointeja
Asiakkaalle raportointi tapahtuu tapauskohtaisesti. Raportoinneista sovitaan erikseen tapaamisten yhteydessä tai sähköpostilla. Lisäksi asiakkaalla on mahdollisuus tutustua Burana- järjestelmän tietoihin.
Projektiryhmällä on käytössä dokumentointijärjestelmä (palautukselle ja kontrollille) kuten aikaisemmin kuvattiin. Lisäksi projektiryhmän ulkopuolelle menevät dokumentit pyritään saattamaan yhtenäiseen muotoon käyttämällä dokumenttipohjaa, jonka mukaan tämäkin dokumentti on tehty. Tämän varmistaa projektin projektipäällikkö yhdessä dokumenttivastaavan kanssa, joiden kautta kaikki dokumentit viime kädessä menevät. Kaikki julkaistavat dokumentit katselmoidaan. Kaikki julkaistava dokumentaatio on html-muodossa. Julkistettavien dokumenttien tekemiseen löytyy ohjeita kurssin kotisivulta.
Dokumentointivastaava tekee lisäksi asikastapaamisista muistiot jotka lähetetään sähköpostilistalla jokaiselle ryhmän jäsenille.
Dokumentin mallipohjasta saa parhaimman käsityksen tutkimalla tätä dokumenttia. Mallipohja on tehty Netscape Composer ja Microsoft FrontPage -työkaluilla ja se on projektijäsenten vapaassa käytössä dokumentointia varten. Mallipohjassa käytetään standardifontteja ja -määrityksiä, paitsi taustavärin suhteen, joka on harmaa luettavuuden parantamiseksi ja silmien rasituksen vähentämiseksi. Mallipohja on saatavissa projektiryhmän kotisivuilta. Mallipohjan mukaan tehdyillä dokumenteilla on yhtenäinen otsake, jossa on tietoa dokumentin nimestä, ryhmästä ja projektista. Dokumenteilla on lisäksi muutoshistoria, joka sisältää muutoksen tekijän, päivämäärän, version ja tehtyjen muutoksien kuvauksen. Lisäksi mallipohjassa on katselmointihistoria, eli aina kun dokumentti katselmoidaan merkitään katselmoijat, päivämäärä, hyväksyjä ja uusi versionumero. Katselmoinnin jälkeen versionumero nousee seuraavaan kokonaiseen lukuun (eli esim. 3.4 -> 4.0). Dokumenteilla ei ole vastuuhenkilöä, vaan muutoshistoriasta voidaan katsoa ketkä kaikki ovat vastuussa dokumentista ja mahdolliset kysymykset voi esittää suuremmalle joukolle henkilöitä.
Dokumentit nimetään kurssikäytännön mukaisesti:
projektisuunnitelma = ps[x].html
vaatimusmäärittely = vm[x].html
edistymisraportti = er[x].html
jne.
Jossa x tarkoittaa versionumeroa alkaen numero ykkösestä.
Asiakkaalle menevät dokumentit kirjoitetaan englanniksi ja html-formaatissa. Dokumentit siirretään ryhmän kotisivuille ennen määräaikoja jotta asiakas voi myös käydä tutustumassa dokumentaatioon ja kommentoida sitä halutessaan tai kurssin puolesta pakollisesti.
Hakemistojärjestelmä tehdään Niksulaan EAT -työkalun osien mukaan, jotka määritellään myöhemmin arkkitehtuurimallissa. Lisäksi ohjelmatyöluokan palvelimen tarjoamaa levytilaa käytetään hyväksi, jos se nähdään tarpeelliseksi.
Ryhmän jäsenillä on lisäksi omat hakemistonsa ryhmän hakemistossa omia tuotoksiaan varten.
Arkkitehtuurin kuvauksessa käytetään UML-notaatiota (lähinnä Rational Rose:n muodossa), kun se käytännölliseksi katsotaan. Arkkitehtuurin määrityksessä yritämme lisäksi hyödyntää oliomallinnuksesta saatuja kokemuksia teollisuudessa, joista lisää arkkitehtuurivaiheessa.
Koodin tyyliksi määrittelemme Sunin Java-koodin tyylioppaan[8] ja kommentointiin JavaDoc -tyylioppaan[9]. Ohjelmistokommentit, muuttujat yms. kirjoitetaan englanniksi.
Laatu pyritään varmistamaan koodin osalta katselmuksilla sekä kattavalla testauksella. Lisäksi hyvä arkkitehtuurisuunnittelu mahdollistaa laadukkaan lopputuotteen, joten panostamme erityisesti helposti tulevaisuudessa muokattavaan arkkitehtuuriin. Dokumentoinnin laatu varmistetaan katselmointijärjestelmällä kuten aikaisemmin on kerrottu. Lisäksi koko projektin laatua pyritään määrittämään erilaisilla mittareilla ja seurannalla. Laatujärjestelmästä on kerrottu lisää laatusuunnitelmassa[10].
Projektipäällikkö ottaa parhaaksi katsomansa ajoin varmuuskopiot haluamistaan osista. Tiedot tallennetaan projektipäällikön ja varaprojektipäällikön omaan korkeakoulun tarjoamaan kotihakemistoon. Lisäksi projektiryhmän jäseniä kannustetaan pitämään mahdollisimman paljon omia varmuuskopioita tallessa. Tarvittaessa voidaan korkeakoulun ATK-keskukselta pyytää lisätilaa PDM-ryhmää varten varmuuskopioita varten.
Varmuuskopiointi tehdään myöhemmin automaattiseksi, jokapäiväiseksi toiminnoksi Niksulan CVS:ssä.
Asiakastapaamiset järjestetään erikseen sovittuna aikoina. Tällä pyritään välttämään turha tapailu, joka rasittaa kaikkia osapuolia. Yleiseksi tapaamisajaksi on sovittu perjantai aamulla kello yhdeksän asiakkaan luona Spektrissä.
Ryhmäpalaverit sovitaan myöskin erikseen. Niiden asialista lähetetään erikseen sähköpostilistan välityksellä. Tapaamisilla on aina vastaava, yleensä projektipäällikkö, joka ohjaa keskustelua, päättää tapaamisen lopettamisesta ja huolehtii, että tapaamisessa oli jokin lopputulos, esimerkiksi päätös jostakin asiasta.
Projekti on ositettu yleisellä tasolla kuten kurssin kotisivuilla on mainittu. Tarkempaan vaiheistukseen ja resurssointiin käytetään MS Project -työkalua. Lisäksi tietyn projektin vaiheen tarkempaa ositusta on käsitelty alla olevien vaihe-kappaleiden sisällä.
PS | Projektin suunnittelu | 3 vko |
T1 | Toteutus 1 | 3 vko |
T2 | Toteutus 2 | 5 vko |
T3 | Toteutus 3 | 9 vko |
T4 | Toteutus 4 | 5 vko |
LU | Luovutus | 5 vko |
Seuraavassa on projektin vaiheiden (kuva yllä) kuvaukset:.
Jokaiseen vaiheeseen kuuluu huomattava määrä palautettavaa dokumentaatiota, josta tarkemmin kurssin kotisivuilla.
Seuraavassa on projektin vaiheiden aikataulut:
Jokaisen vaiheen lopussa on projektikatselmus, jossa projektiryhmä esittelee projektin tilan.
Projektin vaiheisiin on varattu 20 prosentin määrittelemätön työ osa. Tämä osa katsottiin tarpeelliseksi, koska alan kirjallisuus suosittelee jopa 20-50 prosentin kokoista marginaalia[7]. Määrittelemätön työ on ensisijaisesti varattu työlle jota ei ole osattu/muistettu laittaa projektin ajankäyttösuunnitelmaan (MS Project tiedosto), mutta se on myös projektipäällikön keino varmistaa ettei projekti ylitä sille varattua aikaa.
Seuraavissa alaotsikoissa on kerrottu tarkemmin jokaisesta vaiheesta. Toteutuneet tuntimäärät täydennetään luonnollisesti seuraavan vaiheen alkaessa, kun toteutuneet tunnit ovat tarkasti selvillä. Vaiheet on sisäisesti vielä ositettu, jotta projektia voisi paremmin kontrolloida ja tarvittaessa nopeasti muuttamaan panostusta työtehtäviin. Vaiheiden sisällä osien nimet alkavat vaiheen lyhenteellä ja sitten roomalainen numero osoittaa osan numeron vaiheen sisällä (esim. T3-III tarkoittaa T3-vaiheen osaa numero 3).
Toteutuneet tuntimäärät on otettu ViCa -järjestelmän tietokannasta vaiheen loputtua.
Seuraavassa on tarkemmin vaiheen arvioitu tuntityömäärä projektihenkilöittäin / toteutunut tuntityömäärä projektihenkilöittäin (ei sisällä ennen PS-vaihetta tehtyjä tunteja).
Timo | Jukka | Tero | Jonne | Jaakko | Anssi | Miiku | Yhteensä | |
Luennot | 8 / 6 | 8 / 8 | 8 / 6 | 0 / 0 | 6 / 4 | 0 / 7 | 6 / 4 | 36 / 35 |
Projektin hallinta | 8 / 9 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 8 / 9 |
Asiakastapaamiset | 5 / 6 | 5 / 6 | 5 / 4 | 4 / 2 | 2 / 2 | 2 / 2 | 4 / 4 | 27 / 26 |
Ryhmätapaamiset | 9 / 4 | 9 / 3 | 2 / 2 | 6 / 0 | 2 / 4 | 6 / 2 | 5 / 4 | 39 / 19 |
Projektisuunnitelma | 15 /25 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 16 / 25 |
Vaatimusmäärittely | 1 / 0 | 12 / 13 | 1 / 0 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 16 / 15 |
Edistymisraportti | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 |
Asiakasdokumentaation luku | 2 / 2 | 0 / 0 | 1 / 2 | 2 / 5 | 2 / 7 | 2 / 4 | 2 / 0 | 11 / 20 |
Kurssidokumentaation luku | 1 / 2 | 0 / 2 | 1 / 0 | 2 / 0 | 2 / 0 | 2 / 0 | 1 / 0 | 9 / 4 |
Koodiin tutustuminen | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 3 / 1 |
Koodin tekeminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Järjestelmän ylläpito | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 2 | 2 / 2 |
Laatujärjestelmä | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 4 / 4 |
Muu opiskelu | 2 / 2 | 0 / 2 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 4 |
Määrittelemätön työ 20 % | 12 / 5 | 8 / 10 | 5 / 3 | 4 / 3 | 4 / 0 | 3 / 4 | 6 / 12 | 42 / 33 |
Yhteensä | 60 /61 | 40 /44 | 25 /18 | 20 /11 | 20 / 18 | 15 / 19 | 30 /26 | 210/197 |
Projektin suunnittelu -vaihe sisälsi projektiorganisaation, kehitysympäristön, vaatimusten ja vaadittujen dokumentaatioiden suunnittelua. Koodia vaiheessa ei tuotettu, vaikka tutustuminen asiakkaan jo olemassa olevaan koodiin aloitettiin.
PS-vaihetta ei ole ositettu, koska vaihe on epämääräinen projektin aloituksen ja kurssin opetuksen seuraamiseen painottuva.
Seuraavassa on tarkemmin vaiheen arvioitu tuntityömäärä projektihenkilöittäin / toteutunut tuntityömäärä projektihenkilöittäin.
Timo | Jukka | Tero | Jonne | Jaakko | Anssi | Miiku | Yhteensä | |
Luennot | 2 / 0 | 2 / 0 | 2 / 2 | 0 / 0 | 2 / 4 | 0 / 1 | 2 / 2 | 10 / 9 |
Projektin hallinta | 7 / 6 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 2 | 0 / 1 | 0 / 1 | 7 / 13 |
Asiakastapaamiset | 4 / 0 | 4 / 0 | 2 / 0 | 3 / 0 | 0 / 0 | 4 / 0 | 2 / 0 | 19 / 0 |
Ryhmätapaamiset | 4 / 4 | 4 / 6 | 4 / 4 | 3 / 2 | 2 / 4 | 5 / 4 | 0 / 2 | 22 / 26 |
Projektisuunnitelma | 2 / 7 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 6 / 7 |
Vaatimusmäärittely | 0 / 0 | 2 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 2 |
Edistymisraportti | 1 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 2 |
Asiakasdokumentaation luku | 2 / 0 | 0 / 0 | 2 / 3 | 5 / 5 | 4 / 0 | 1 / 2 | 3 / 0 | 17 / 10 |
Kurssidokumentaation luku | 0 / 0 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 |
Koodiin tutustuminen | 2 / 0 | 4 / 1 | 2 / 1 | 0 / 0 | 2 / 9 | 0 / 0 | 0 / 0 | 10 / 11 |
Koodin tekeminen | 0 / 0 | 11 / 0 | 8 / 2 | 4 / 0 | 4 / 0 | 0 / 7 | 0 / 0 | 27 / 9 |
Käyttöliittymäsuunnittelu | 1 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 4 / 0 | 0 / 0 | 0 / 0 | 9 / 0 |
Toiminnallinen määrittely | 2 / 0 | 4 / 0 | 8 / 6 | 2 / 0 | 2 / 2 | 2 / 6 | 2 / 0 | 22 / 14 |
Arkkitehtuurisuunnittelu | 1 / 0 | 1 / 0 | 10/3.5 | 3 / 0 | 2 / 0 | 3 / 5.5 | 0 / 0 | 20 / 9 |
Testisuunnitelma | 0 / 0 | 1 / 0 | 0 / 1 | 0 /0 | 0 / 0 | 0 / 0 | 5 / 10 | 6 / 11 |
Järjestelmän ylläpito | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 5 / 7 | 5 / 7 |
Laatujärjestelmä | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 5 / 3 | 5 / 3 |
Muu opiskelu | 4 / 0 | 4 / 1 | 2 / 2 | 0 / 0 | 2 / 2 | 5 / 0 | 0 / 0 | 17 / 5 |
Määrittelemätön työ 20% | 8 / 11 | 10 / 4 | 10 / 0 | 6 / 0 | 6 / 3 | 5 / 0 | 7 / 0 | 52 / 18 |
Yhteensä | 40/30 | 50/16 | 50/25.5 | 30/8 | 30/26 | 25/26.5 | 35/25 | 260/157 |
T1-vaihe oli vielä suurimmaksi osaksi suunnittelua, mutta myös pieni prototyyppi saatiin valmiiksi.
Vaihe on sisäisesti jaettu kahteen osaan:
Vaiheen tärkeimmät kohdat:
Saimme tehtyä toiminnallisen määrittelyn ja testaussuunnitelman kuten suunnittelimme. Arkkitehtuuriksi varmistui kaksi-vaihe arkkitehtuuri, jossa on käyttöliittymäosa ja Pinja-osa. Välilogiikka (ns. bisneslogiikka) sijoitetaan tarvittaessa kumpaankin osaan. Teknisestä määrittelystä saimme ensimmäisen version valmiiksi, mutta sitä ei vielä T1-vaiheessa palauteta. Lisäksi T1-II -vaihe tuotti prototyypin, jonka laajentamista jatkamme seuraavassa vaiheessa. Protyypissä on Pinjaan tehty muutoksia sekä rakennettu Swing-komponenteista Pinja-muutoksien testaamista varten käyttöliittymä.
Seuraavassa on tarkemmin vaiheen arvioitu tuntityömäärä projektihenkilöittäin / toteutunut tuntityömäärä projektihenkilöittäin.
Timo | Jukka | Tero | Jonne | Jaakko | Anssi | Miiku | Yhteensä | |
Kurssidokumentaation luku | 1 / 0 | 0 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 4 |
Asiakasdokumentaation luku | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 0 |
Muu opiskelu | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Ryhmätapaamiset | 4 / 4 | 4 / 3 | 5 / 4 | 4 / 2 | 4 / 3 | 3 / 2 | 4 / 4 | 28 / 22 |
Asiakastapaamiset | 1 / 0 | 1 / 0 | 0 / 0 | 2 / 2 | 0 / 0 | 2 / 0 | 0 / 0 | 6 / 2 |
Toiminnallisen määrittelyn kirjoittaminen | 0 / 0 | 0 / 0 | 4 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 |
Arkkitehtuurisuunnittelu | 0 / 0 | 0 / 0 | 3 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 5 / 0 |
Käyttöliittymäsuunnittelu | 0 / 0 | 4 / 0 | 0 / 0 | 10 / 16 | 0 / 0 | 0 / 0 | 0 / 0 | 14 / 16 |
Teknisen määrittelyn kirjoittaminen | 0 / 0 | 0 / 0 | 4 / 0 | 0 / 1 | 15 / 16 | 3 / 0 | 0 / 0 | 22 / 17 |
Kehitysympäristön ylläpito | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 5 | 1 / 5 |
Pinjan muutosten koodaus | 0 / 0 | 0 / 0 | 8 / 11 | 0 / 0 | 4 / 0 | 9 / 9 | 0 / 0 | 21 / 20 |
Käyttöliittymän koodaus | 0 / 0 | 2 / 0 | 0/ 0 | 15 / 31 | 0 / 0 | 0 / 0 | 0 / 4 | 17 / 35 |
Muu koodaus | 0 / 0 | 8 / 0 | 0 / 5 | 0 / 0 | 0 / 1 | 0 / 16 | 0 / 0 | 8 / 22 |
Koodiin tutustuminen | 1 / 0 | 6 / 1 | 0 / 2 | 0 / 0 | 6 / 0 | 2 / 2 | 2 / 3 | 17 / 8 |
Testausympäristön suunnittelu | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 0 |
Testaussuunnitelman kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 4 / 0 |
Testausraportin kirjoitus | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 5 / 0 |
Integrointitestaus | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 |
Järjestelmätestaus | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 |
Regressiotestaus | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Moduulitestaus | 0 / 0 | 0 / 0 | 1 / 11 | 1 / 1 | 1 / 0 | 1 / 3 | 0 / 0 | 4 / 15 |
Käytettävyystestaus | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 0 | 4 / 2 |
BURANA-raporttien toteutus | 1 / 0 | 3 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 |
Projektin hallinta | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 3 |
Laatujärjestelmä | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 0 |
Kokouspöytäkirjojen kirjoittaminen | 0 / 0 | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 3 |
Dokumenttien hallinta | 0 / 0 | 6 / 4 | 0 / 0 | 0 / 0 | 0 / 3 | 0 / 0 | 0 / 0 | 6 / 7 |
Vanhojen dokumenttien päivitys | 2 / 4 | 1 / 0 | 0 / 0 | 1 / 0 | 0 / 8 | 0 / 0 | 0 /0 | 4 / 12 |
Seuraavan vaiheen tarkka suunnittelu | 2 / 2 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 2 |
Edistymisraportin kirjoittaminen | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 |
Katselmuksen valmistelu | 2 / 2 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 8 / 3 |
Katselmus | 1 / 1 | 1 / 1 | 1 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 1 / 0 | 7 / 3 |
Määrittelemätön työ 20% | 6 / 0 | 10 / 0 | 7 / 1 | 10 / 2 | 8 / 0 | 6 / 0 | 6 / 0 | 53 / 3 |
Yhteensä | 30/17 | 50 / 17 | 35/34 | 50 / 55 | 40 / 32 | 30 / 33 | 30 / 18 | 265/206 |
T2-vaihe tulee sisältämään T1-vaiheessa aloitetun prototyypin laajennusta vaatimuksien mukaan. Lisäksi teknistä määrittelyä täydennetään rinnakkain järjestelmän kehityksen kanssa. T1-vaiheessa tuotettu prototyyppi jää käyttöön Pinjan muutoksien osalta ja käyttöliittymäosa heitetään pois.
Vaihe on sisäisesti jaettu kahteen osaan:
Vaiheen tärkeimmät kohdat:
Vaiheesta T2-I poistumisen ehto on teknisen suunnitelman valmistuminen.
Vaiheen T2-II poistumisen ehto on Pinjan-osan [oliotyypit] ja [arvolistat] -vaatimusten toteuttaminen asteelle, jossa niitä voidaan demota T2-vaiheen lopussa.
Seuraavassa on tarkemmin vaiheen arvioitu tuntityömäärä projektihenkilöittäin / toteutunut tuntityömäärä projektihenkilöittäin.
Timo | Jukka | Tero | Jonne | Jaakko | Anssi | Miiku | Yhteensä | |
Kurssidokumentaation luku | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Asiakasdokumentaation luku | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Muu opiskelu | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Ryhmätapaamiset | 2 / 3 | 2 / 3 | 2 / 5 | 2 / 3 | 2 / 2 | 2 / 4 | 2 / 2 | 14 / 21 |
Asiakastapaamiset | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Toiminnallisen määrittelyn kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Teknisen määrittelyn kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 4 / 18 | 0 / 0 | 0 / 0 | 6 / 18 |
Kehitysympäristön ylläpito | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 0 |
Pinjan muutosten koodaus | 0 / 0 | 0 / 0 | 8 / 7 | 0 / 0 | 10 / 0 | 16 / 22 | 0 / 0 | 34 / 29 |
Käyttöliittymän koodaus | 0 / 0 | 3 / 21 | 0 / 0 | 30 / 33 | 0 / 0 | 0 / 0 | 7 / 25 | 40 / 69 |
Muu koodaus | 0 / 0 | 0 / 4 | 6 / 18 | 0 / 7 | 8 / 13 | 10 / 25 | 0 / 0 | 24 / 67 |
Koodiin tutustuminen | 0 / 0 | 1 / 10 | 0 / 0 | 0 / 0 | 0 / 6 | 0 / 8 | 0 / 0 | 1 / 24 |
Testausympäristön suunnittelu | 0 /0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Testaussuunnitelman kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Testausraportin kirjoitus | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 |
Integrointitestaus | 0 / 0 | 0 / 0 | 3 / 0 | 2 / 0 | 3 / 0 | 4 / 0 | 1 / 0 | 13 / 0 |
Järjestelmätestaus | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Regressiotestaus | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Moduulitestaus | 0 / 0 | 1 / 0 | 3 / 0 | 2 / 2 | 3 / 0 | 6 / 3 | 0 / 2 | 15 / 7 |
Käytettävyystestaus | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 7 / 2 | 9 / 3 |
BURANA-raporttien toteutus | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 |
Projektin hallinta | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 |
Laatujärjestelmä | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 2 / 1 |
Käyttöoppaan kirjoittaminen | 0 / 0 | 7 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 2 | 7 / 2 |
Kokouspöytäkirjojen kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Dokumenttien hallinta | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Vanhojen dokumenttien päivitys | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 2 | 0 / 0 | 0 / 0 | 3 / 0 | 5 / 2 |
Seuraavan vaiheen tarkka suunnittelu | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 |
Edistymisraportin kirjoittaminen | 2 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 2 |
Katselmuksen valmistelu | 1 / 1 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 7 / 1 |
Katselmus | 1 / 1 | 1 / 1 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 7 / 3 |
Määrittelemätön työ 20% | 4 / 0 | 4 / 1 | 6 / 3 | 10 / 0 | 8 / 0 | 10 / 2 | 7 / 0 | 49 / 6 |
Yhteensä | 20 / 10 | 20 / 42 | 30 / 34 | 50 / 45 | 40 / 39 | 50 / 62 | 35 / 35 | 245 / 267 |
T3-vaihe tulee sisältämään kaikkien loppujen vaatimusten toteuttamisen. Lisäksi teknistä määrittelyä täydennetään rinnakkain järjestelmän kehityksen kanssa. T4 toteutusvaihetta on tarkoitus painottaa testauksen ja korjausten suuntaan, joten tämä vaihe sisältää paljon toiminnallisuuden lisäämistä EAT:iin.
Projektiryhmä on periaatteessa hajaantunut kahteen sisäiseen ryhmään. Jonnen vastuulla oleva hoitaa käyttöliittymän (GUI) tulevia muutoksia ja lisäyksiä ja Teron vastuulla on taas Pinja Interfaceen tulevat muutokset. Jonnen ryhmään kuuluvat Jukka ja Miiku ja Teron ryhmään Anssi ja Jaakko.
Vaihe on sisäisesti jaettu kolmeen osaan:
Vaiheen tärkeimmät kohdat:
Vaiheesta T3-I ei ole poistumisen ehtoa, koska kyseessä on lomavaihe.
Vaiheen T3-II poistumisen ehto on [attribuutit], [ssl] ja [protokollacli] vaatimuksien valmistuminen testattavalle asteelle.
Vaiheen T3-III poistumisen ehto on [tilakaaviot], [varausväli], [logincheck], [käyttäjänhallinta], [monitor] ja [undo] vaatimuksien valmistuminen testattavalle asteelle.
Koska kaikki mainitut vaatimukset sisältävät muutoksia sekä Pinja Interfaceen että GUI-osaan, joutuu kumpikin projektiryhmän sisäinen ryhmä tekemään kaikkia mainittuja vaatimuksia. Tietyn toiminnallisuuden vaatiman työn jakaminen on yleensä juuri sopivan kokoinen työtehtävä annettavaksi jommalle kummalle projektiryhmän sisäiselle ryhmälle.Tapa on muutenkin hyvä, sillä ryhmän vetäjät tuntevat osa-alueensa parhaiten. Näin vältytään turhalta byrokratialta ja suunnitelulta, joka näin pienessä projektissa yleensä on vain haitaksi. Kyseinen menetelmä vaatii kuitenkin toimiakseen sen, että esimerkiksi projektipäällikkö seuraa hyvin tiiviisti osatehtävien toteutumista.
Bugien korjaukseen varataan aikaa vasta vaiheessa 4, koska se on varsinainen testausvaihe. Jos projektin jäsen kuitenkin käyttää aikaa bugien korjaukseen jo tässä vaiheessa, tulee se merkitä määrittelemättömäksi työksi ja selventää käytettyä aikaa kommentein.
Seuraavassa on tarkemmin vaiheen arvioitu tuntityömäärä projektihenkilöittäin / toteutunut tuntityömäärä projektihenkilöittäin.
Timo | Jukka | Tero | Jonne | Jaakko | Anssi | Miiku | Yhteensä | |
Kurssidokumentaation luku | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Asiakasdokumentaation luku | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Muu opiskelu | 0 / 0 | 0 / 2 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 2 / 2 |
Ryhmätapaamiset | 3 / 3 | 4 / 2 | 4 / 1 | 4 / 3 | 4 / 1 | 4 / 0 | 4 / 2 | 27 / 12 |
Asiakastapaamiset | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Toiminnallisen määrittelyn kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Teknisen määrittelyn kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 6 / 23 | 0 / 0 | 0 / 0 | 18 / 23 |
Kehitysympäristön ylläpito | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Pinjan muutosten koodaus | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 10 / 4 | 0 / 0 | 11 / 5 |
Käyttöliittymän koodaus | 0 / 0 | 4 / 1 | 0 / 0 | 20 / 11 | 0 / 0 | 0 / 0 | 0 / 19 | 24 / 31 |
Muu koodaus | 0 / 0 | 0 / 0 | 10 / 2 | 0 / 0 | 4 / 0 | 10 / 25 | 0 / 0 | 24 / 27 |
Koodiin tutustuminen | 0 / 0 | 0 / 0 | 5 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 5 / 0 |
Testausympäristön suunnittelu | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Testaussuunnitelman kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 4 / 0 |
Testausraportin kirjoitus | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 4 / 0 |
Integrointitestaus | 0 / 0 | 0 / 0 | 5 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 9 / 0 |
Järjestelmätestaus | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 7 | 0 / 0 | 0 / 1 | 4 / 0 | 5 / 8 |
Regressiotestaus | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 4 / 0 | 5 / 0 |
Moduulitestaus | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 0 | 6 / 9 | 2 / 0 | 12 / 9 |
Käytettävyystestaus | 2 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 |
BURANA-raporttien toteutus | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 2 / 0 | 2 / 0 | 10 / 0 |
Projektin hallinta | 4 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 |
Laatujärjestelmä | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 0 |
Käyttöoppaan kirjoittaminen | 0 / 0 | 4 / 15 | 0 / 1 | 0 / 3 | 0 / 0 | 0 / 0 | 0 / 6 | 4 / 25 |
Kokouspöytäkirjojen kirjoittaminen | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 |
Dokumenttien hallinta | 4 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 |
Vanhojen dokumenttien päivitys | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 2 / 5 |
Seuraavan vaiheen tarkka suunnittelu | 2 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 2 |
Edistymisraportin kirjoittaminen | 4 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 0 |
Katselmuksen valmistelu | 1 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 7 / 1 |
Katselmus | 1 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | 1 / 0 | 7 / 6 |
Määrittelemätön työ 20% | 6 / 0 | 4 / 0 | 6 / 0 | 8 / 1 | 8 / 0 | 8 / 0 | 8 / 0 | 48 / 1 |
Yhteensä | 30 / 9 | 20 / 23 | 30 / 8 | 40 / 27 | 40 / 25 | 50 / 41 | 40 / 27 | 240 / 160 |
T4-vaihe tulee sisältämään kaikkien loppujen vaatimusten toteuttamisen, tosin [undo] vaatimuksen toteuttamisesta keskustelemme asiakkaan kanssa. Lisäksi teknistä määrittelyä täydennetään rinnakkain järjestelmän kehityksen kanssa. Erityisesti on huomattava, että koska edellisessä vaiheessa ei saatu toteutettua haluttuja vaatimuksia, joudutaan niitä jatkamaan tässä vaiheessa. Tämän ei pitäisi aiheuttaa ongelmia, koska siihen on varauduttu esimerkiksi määrittelemättömän työn lisällä.
Vaihe on sisäisesti jaettu kolmeen osaan:
Vaiheen tärkeimmät kohdat:
Vaiheen T4-I poistumisen ehto on [attribuutit], [logincheck] vaatimuksien valmistuminen.
Vaiheen T4-II poistumisen ehto on [käyttäjänhallinta] ja [monitor] vaatimuksien valmistuminen testattavalle asteelle.
Seuraavassa on tarkemmin vaiheen arvioitu tuntityömäärä projektihenkilöittäin / toteutunut tuntityömäärä projektihenkilöittäin.
Toteutuneet tunnit on otettu 19.4.2001, joten kaikki projektin toteutuneet tunnit eivät ole taulukossa, mutta ero lopullisiin tuloksiin on hyvin pieni ja merkityksetön koko projektin mittakaavassa.
Timo | Jukka | Tero | Jonne | Jaakko | Anssi | Miiku | Yhteensä | |
Kurssidokumentaation luku | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Asiakasdokumentaation luku | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Muu opiskelu | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Ryhmätapaamiset | 2 / 1 | 2 / 2 | 2 / 2 | 2 / 1 | 2 / 1 | 2 / 0 | 2 / 1 | 14 / 8 |
Asiakastapaamiset | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Toiminnallisen määrittelyn kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Teknisen määrittelyn kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 6 / 0 | 0 / 1 | 0 / 0 | 6 / 1 |
Kehitysympäristön ylläpito | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Pinjan muutosten koodaus | 0 / 0 | 0 / 0 | 0 /0 | 0 / 0 | 2 / 0 | 10 / 0 | 0 / 0 | 12 / 0 |
Käyttöliittymän koodaus | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 2 | 2 / 3 |
Muu koodaus | 0 / 0 | 0 / 0 | 10 / 0 | 0 / 0 | 4 / 0 | 6 / 0 | 2 / 0 | 22 / 0 |
Koodiin tutustuminen | 0 / 0 | 0 / 0 | 5 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 5 / 0 |
Testausympäristön suunnittelu | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Testaussuunnitelman kirjoittaminen | 0 / 0 | 0 / 0 | 0 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 2 |
Testausraportin kirjoitus | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 6 | 2 / 6 |
Integrointitestaus | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Järjestelmätestaus | 0 / 0 | 0 / 4 | 2 / 0 | 0 / 0 | 0 / 3 | 2 / 3 | 2 / 0 | 6 / 10 |
Regressiotestaus | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 2 | 2 / 2 |
Moduulitestaus | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Käytettävyystestaus | 2 / 0 | 2 / 2 | 2 / 2 | 0 / 0 | 2 / 0 | 4 / 0 | 2 / 4 | 14 / 8 |
BURANA-raporttien toteutus | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 2 / 0 | 2 / 0 | 2 / 0 | 8 / 0 |
Projektin hallinta | 4 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 4 |
Laatujärjestelmä | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 0 |
Käyttöoppaan kirjoittaminen | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 |
Kokouspöytäkirjojen kirjoittaminen | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 |
Dokumenttien hallinta | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Vanhojen dokumenttien päivitys | 1 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 4 | 1 / 7 |
Seuraavan vaiheen tarkka suunnittelu | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Opponoitavan järjestelmän testaaminen | 2 / 0 | 2 / 2 | 2 / 2 | 2 / 0 | 2 / 1 | 2 / 0 | 2 / 0 | 14 / 5 |
Opponointitestauksen test-casejen teko | 0 / 0 | 2 / 1 | 2 / 0 | 2 / 0 | 2 / 0 | 2 / 0 | 2 / 3 | 12 / 4 |
Opponointitestauksen hallinta | 2 / 2 | 1 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 2 | 1 / 3 | 4 / 10 |
Edistymisraportin kirjoittaminen | 4 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 4 |
Loppudemon valmistelu | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 7 / 0 |
Loppudemo | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 7 / 0 |
Määrittelemätön työ 20% | 4 / 1 | 4 / 0 | 6 / 0 | 2 / 0 | 6 / 0 | 8 / 0 | 6 / 0 | 36 / 1 |
Yhteensä | 20 / 11 | 20 / 14 | 30 / 7 | 10 / 3 | 30 / 5 | 40 / 9 | 30 / 25 | 180 / 74 |
Lu-vaihe tulee sisältämään testausta ja löytyneiden virheiden korjausta. Vaiheen lopussa EAT-ohjelmisto luovutetaan asiakkaalle. Ohjelmiston luovuttaminen ajoissa on myös vaiheen exit-kriteeri. Luovutuksen tulee tapahtua viimeistään perjantaina 20.4.2001.
Vaihetta ei ole sisäisesti jaettu osiin. Vaiheessa tullaan suorittamaan järjestelmä- ja käytettävyystestausta useina kierroksina (regressiotestausta), joiden välissä havaitut virheet pyritään korjaamaan.
Käytämme kurssin tarjoamia tapoja mitata ja seurata projektin edistymistä. Näistä tiedoista voi projektipäällikkö tehdä havaintoja projektin edistymisestä ja toimia sen mukaan.
Projektipäällikkö pitää lisäksi kirjaa projektijäsenten tapaamisiin osallistumisesta. Tämä antaa yleistä käsitystä kyseisen henkilön halusta panostaa projektiin. Tosin se myös kertoo, jos projektihenkilö ei pysty muiden kiireiden (esimerkiksi työ) takia osallistumaan projektiin kuten tarvitsisi.
Projektin tilaa seurataan ryhmätapaamisissa sovituin ajoin (ei turhia kokouksia, jotka lannistavat osallistumisaktiivisuutta). Näissä tapaamisissa on varattu loppuun aikaa yleiselle juttelulle projektin asioista. Käytäntö on osoittanut, että tämä on yksi parhaimpia tapoja pitää koko projektiryhmä tietoisena projektin tilasta, kunhan vain tapaamisaktiivisuus saadaan pidettyä korkeana. Tosin tähän 'mittariin' liittyy henkilöstä riippuva liioittelu/vähättely vakio, joten projektipäällikön ei kannata luottaa pelkästään projektijäsenten sanomisiin vaan konkreettisesti mitata ja tutkia projektin oikeaa tilaa.
Asiakkaan puolelta seuranta ja ohjaus perustuu pitkälti asiakastapaamisiin sekä asiakkaille toimittamiimme dokumentteihin. Lisäksi projektin aikana voidaan sopia asiakkaan kanssa demotilaisuuksista, joissa demotaan EAT -työkalun sen hetkistä tilaa.
Projektipäällikkö laatii vaiheiden lopuksi edistymisraportin, jossa annetaan kattavampi yhteenveto projektin tilasta projektiryhmän ulkopuolelle. Projektipäällikkö lisäksi tutkii koko projektin ajan mahdollisten lisämittareiden käyttöä.
Lisäksi laatuvastaava pitää yllä omia mittareitaan projektin tilan ja laadun seurantaan.
Seuraavassa on lueteltu projektin mahdolliset riskit.
Riskeissä on määritelty itse riski, sen havainnointi, syy, seuraus, ehkäisy ja reagointi. Varsinkin havainnointi on tärkeä kohta, sillä projektin alussa pyritään luonnollisesti varautumaan ja ehkäisemään riskejä, mutta ne joita ei voitu ehkäistä, pitää pystyä havainnoimaan jotenkin projektin kuluessa, jotta niihin voidaan reagoida.
Riskit ovat arvioimassamme todennäköisyys- ja vakavuusjärjestyksessä, sillä oikeiden todennäköisyyksien arvioiminen on yleensä mahdotonta ja melko hyödytöntä, varsinkin jos kaikkia mahdollisia riskejä on projektin alussa yritetty ehkäistä.
Riski | Projektin työmäärän liiallinen kasvu |
Havainnointi | Projektijäsenet ylityöllistyneitä, väsyneitä, motivaatio laskee, työn laatu heikkenee |
Syy | Aliarvioidut työtehtävät, huono arkkitehtuurisuunnittelu alussa, huono projektinhallinta, projektijäsenten arvioitua heikompi tuottavuus/taito |
Seuraus | Projektin keskeyttäminen, huono/vajaa lopputuote, aikataulun pettäminen, kurssiarvosana laskee |
Ehkäisy | Hyvin määritelty arkkitehtuuri, pienet osatehtävät, vara-projektipäällikkö seuraa projektipäällikön toimia, ensimmäisten tehtävien mukainen jäsenten arviointi, varataan määrittelemätöntä työtä kalenteriin |
Reagointi | Vaatimuksien karsiminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, ylityöt |
Riski | Yhden projektiryhmän jäsenen: sairastuminen, kurssin keskeyttäminen, pitkä loma tai muu suunnittelematon este |
Havainnointi | - |
Syy | Huono suunnittelu kyseiseltä henkilöltä, muistamattomuus, huono projektin henkilöstöasioiden hoito, liikaa töitä, ei pysty tekemään tehtäviään |
Seuraus | Projektin keskeyttäminen, huono/vajaa lopputuote, aikataulun pettäminen, kurssiarvosana laskee |
Ehkäisy | Varataan määrittelemätöntä työtä kalenteriin, henkilön pari tuntee poissaolevan työn pääpiirteissään |
Reagointi | Töiden uudelleen jakaminen (erityisesti henkilön parille), vaatimuksien karsiminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, ylityöt |
Riski | Asiakkaan vaatimukset muuttuvat |
Havainnointi | Asiakas kertoo haluavansa sitä sun tätä jo projektin alussa, epämääräisiä vaatimuksia (asiakas ei tiedä mitä haluaa) |
Syy | Yleinen vaatimuksien muuttuminen (esim. protokolla muuttuu, EDMS-järjestelmän uusi versio vaikuttaakin jo meidän järjestelmään enemmän kuin suunniteltiin) |
Seuraus | Projektin keskeyttäminen, liikaa töitä, huono/vajaa/sekava lopputuote, aikataulun pettäminen, kurssiarvosana laskee |
Ehkäisy | Vaaditaan tarkat vaatimukset projektin alussa, tehdään arkkitehtuurista joustava muutoksille, varataan määrittelemätöntä työtä kalenteriin |
Reagointi | Kieltäydytään muutoksista, vaatimuksien karsiminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, ylityöt |
Riski | Projektiryhmä ei pysy kurssin aikataulussa |
Havainnointi | Projektipäällikkö havaitsee eri mittareista, työt myöhästelevät |
Syy | Liikaa töitä (myös projektin ulkopuolisia töitä projektijäsenillä), huono projektinhallinta, projektijäsenten arvioitua heikompi tuottavuus/taito |
Seuraus | Projektin keskeyttäminen, huono/vajaa lopputuote, aikataulun pettäminen, kurssiarvosana laskee |
Ehkäisy | Hyvin määritelty arkkitehtuuri, pienet osatehtävät, varataan määrittelemätöntä työtä kalenteriin |
Reagointi | Töiden uudelleen jakaminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, vaatimuksien karsiminen, ylityöt |
Riski | Ryhmän jäsenten aikataulut eivät sovi yhteen |
Havainnointi | Työtehtävien myöhästely aikataulustaan, heikko työn laatu |
Syy | Liikaa töitä (myös projektin ulkopuolisia) |
Seuraus | Töitä kasautuu tietyille henkilöille, huono/vajaa lopputuote, aikataulun pettäminen, kurssiarvosana laskee |
Ehkäisy | Ryhmään haettu jäseniä, joilla ei ulkopuolisia töitä liikaa, aikataulutiedustelut projektin alussa, tehtävien mitoitus tarpeeksi suurelle ajalle, tehtävät itsenäiseksi (vältetään yhteisiä toimintoja) |
Reagointi | Töiden uudelleen jakaminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu |
Riski | Yllättäviä teknisiä kysymyksiä |
Havainnointi | Järjestelmän osat eivät yhteensopivia, järjestelmän osaa ei voida toteuttaa. protokollassa virheitä |
Syy | Huono esivalmistelu, vaatimukset muuttuvat, tekniikka muuttuu |
Seuraus | Huono/vajaa lopputuote, aikaa kuluu paljon ongelman ratkaisuun/löytämiseen |
Ehkäisy | Hyvä esivalmistelu (järjestelmävastaava nimetty), prototyypitys, opiskelu teknisistä yksityiskohdista, tehdään julkisilla kirjastoilla (Swing), varataan määrittelemätöntä työtä kalenteriin ongelman ratkaisemiseen |
Reagointi | Resurssoidaan työtä kysymyksen ratkaisuun, järjestelmän muuttaminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, vaatimuksien karsiminen |
Riski | Väärien toiminnallisuuksien toteuttaminen |
Havainnointi | Asiakas valittaa, testihenkilöt valittavat, ohjelmiston toiminnallisuuksissa virheitä joita mahdoton korjata asiakasvaatimuksia vastaaviksi |
Syy | Huonosti määritellyt/analysoidut asiakasvaatimukset, virheet vaatimusmäärittelyssä |
Seuraus | Aikataulun pettäminen, huono/vajaa/toimimaton lopputuote, aikaa kuluu paljon ongelman ratkaisuun/löytämiseen, kurssiarvosana laskee |
Ehkäisy | Vaaditaan asiakkaalta tarkat vaatimukset jotka analysoidaan huolella, ei hosuta vaan prototyypitetään, katselmointi |
Reagointi | Kieltäydytään muutoksista eli tehdään mitä keritään, järjestelmän muuttaminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, vaatimuksien karsiminen, ylityöt |
Riski | Lopputuote ei vastaa asiakkaan odotuksia |
Havainnointi | Asiakas valittaa, testihenkilöt valittavat |
Syy | Huonosti määritellyt/analysoidut asiakasvaatimukset, virheet vaatimusmäärittelyssä |
Seuraus | Asiakas joutuu itse kehittämään tuotetta eteenpäin, kurssiarvosana laskee |
Ehkäisy | Vaaditaan asiakkaalta tarkat vaatimukset jotka analysoidaan huolella, ei hosuta vaan prototyypitetään, katselmoidaan |
Reagointi | Järjestelmän muuttaminen jos aikaa, joku jäsen jää kurssin jälkeen töihin asiakkaalle, ylityöt |
Riski | Huono projektinhallinta |
Havainnointi | Rooliepäselvyydet, päällekkäiset työt, töitä jää tekemättä, aikataulun pettäminen, projektijäsenet valittavat |
Syy | Projektipäälliköllä liikaa töitä/motivaatio-ongelmia/ei tehtäviensä tasalla, projekti liian laaja yhden projektipäällikön hallittavaksi |
Seuraus | Projektin keskeyttäminen, huono/vajaa lopputuote, aikataulun pettäminen, kurssiarvosana laskee |
Ehkäisy | Varaprojektipäällikkö tarkkailee, jokainen jäsen tekee vähintäänkin oman osuutensa hallinnollisista asioista, töiden delegointi |
Reagointi | Vaihdetaan projektipäällikköä (esim. varaprojektipäällikköön), projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, vaatimuksien karsiminen, ylityöt |
Riski | Ongelmia työkaluissa ja laitteissa |
Havainnointi | Epäselviä virheitä, tuottavuuden lasku |
Syy | Inhimilliset syyt, ohjelmistovika, laitteistovika, tietoliikennevika, turvallisuusaukko, tihutyöt |
Seuraus | Aikataulun pettäminen, huono/vajaa lopputuote, aikaa kuluu paljon ongelman ratkaisuun/löytämiseen |
Ehkäisy | Kehitysympäristön valinta vakaaksi ja yleisesti käytössä olevaksi, prototyypitys, varataan määrittelemätöntä työtä kalenteriin, varmuuskopiointi, tietoturvallisuudesta huolehditaan jo alusta asti |
Reagointi | Resurssoidaan työtä kysymyksen ratkaisuun, järjestelmän muuttaminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, vaatimuksien karsiminen, kehitysympäristön muuttaminen |
Riski | Vähäintään kahden projektiryhmän jäsenen: sairastuminen, kurssin keskeyttäminen tai muu suunnittelematon este |
Havainnointi | Jo yksi lähtenyt |
Syy | Huono suunnittelu kyseiseltä henkilöltä, muistamattomuus, huono projektin henkilöstöasioiden hoito, liikaa töitä, ei pysty tekemään tehtäviään |
Seuraus | Projektin keskeyttäminen, huono/vajaa lopputuote, aikataulun pettäminen, kurssiarvosana laskee |
Ehkäisy | Varataan määrittelemätöntä työtä kalenteriin, jos yksi lähtenyt, tutki miksi, henkilöiden parit tuntevat poissaolevan työt pääpiirteissään, mutta tämä riippuu ketkä ovat lähteneet. Hyvässä tapauksessa ryhmä voi selvitä kahdestakin poissaolevasta (kun ei pari kyseessä). Lisäksi muistakin kombinaatioista voidaan selvitä. Kombinaatioita voi tutkia Projektiryhmä -kappaleesta tarkemmin. |
Reagointi | Töiden uudelleen jakaminen (erityisesti henkilön parille), vaatimuksien karsiminen, projektin aikataulutuksen tarkastus ja uudelleen suunnittelu, ylityöt |
Projektiryhmä pitää tarvittaessa sisäisiä koulutustilaisuuksia, jos siihen ilmenee tarvetta. Esimerkiksi CVS:n käyttöä voidaan opettaa niille jotka sitä eivät ole ennen käyttäneet.
Suuria koulutustarpeita ei ole, koska ryhmään pääsi vain jos Java-ohjelmointikieli on tuttu. Muita suuria osaamisvaatimuksia projektissa ei ole.
Projektin lopputuote on itsenäinen Java-ohjelma, jonka asennus on helppoa. Ohjelma kopioidaan työasemaan, jossa sitä halutaan käyttää ja ohjelma käynnistetään.
Ohjelman käyttäminen vaatiii JRE-ympäristön työasemalla.
[2] PDMG ryhmän sivut, http://www.cs.hut.fi/~pdmg/
[3] Dokumenttihallintajärjestelmän kuvausta, http://www.cs.hut.fi/u/pdmg/edms/Info.html
[4] Tik-76.115 Tietojenkäsittelyopin ohjelmatyö -kurssin kotisivut, http://www.cs.hut.fi/Opinnot/Tik-76.115/
[5] EAT-projektin kotisivut, www.hut.fi/~tratilai/pdm
[6] C.Jones: Softaware Defect-Removal Efficiency. (IEEE) Computer 29, 4, 1996, p. 94-95
[7] I. Haikala, J. Märijärvi, Ohjelmistotuotanto, Suomen ATK-kustannus, 1998
[8] Sunin määrittelemä Java-koodin tyyliopas, http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
[9] JavaDoc -tyyliopas, http://java.sun.com/products/jdk/javadoc/writingdoccomments/index.html
[10] EAT-projektin laatusuunnitelma
[11] EAT-projektin vaatimusmäärittely